A key design consideration of mobile devices is battery life. Mobile devices employ various optimizations and features to extend battery life. Some such optimizations and features are enabled for low charge states of a battery to extend the amount of time the remaining charge can be used to power the mobile device. However, various hardware or software modules of the mobile devices are power hungry and drain unnecessary power irrespective of the battery charge state.
Actuating a hardware input/output interface on a mobile device (e.g., by pressing a button or touch screen icon) causes an interrupt service routine/hardware to generate an interrupt that causes a mobile device processor to execute a function associated with the hardware input/output interface (the “hardware function”). For example, the volume buttons on a smartphone—pressing an up-volume button generates an interrupt causing the processor to jump to an address (stored in a register) of an interrupt service routine that the processor executes to prompt execution of the hardware function to increase a volume setting. If the volume setting is already at a maximum, further presses of the button interrupt the processor to perform the volume-up hardware function but the processor cannot change the setting. Even though no action is taken, the button press has nevertheless interrupted the processor. The processor also likely implements ancillary functions related to the hardware function, such as turning on a display. Generating and processing the interrupts and implementing the hardware function and ancillary functions requires processor cycles and power for components, such as the display, which results in power consumption from a battery of the mobile device. When settings are at a limit, responding to the interrupt causes needless cycling of the processor and battery drain.